package com.biz.primus.ms.order.feign;

import com.biz.primus.model.oms.vo.UserOrderOperationRequest;
import com.biz.primus.model.oms.vo.returns.UserFillReturnExpressInfoRequestVo;
import com.biz.primus.model.oms.vo.returns.UserOperateReturnRequestVo;
import com.biz.primus.ms.order.degraded.DegradedOmsFeignClient;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * OmsFeignClient
 *
 * @author Tiger Feng
 * @date 2017年11月24日
 */
@FeignClient(qualifier = "omsFeignClient", name = "service-oms", fallback = DegradedOmsFeignClient.class)
public interface OmsFeignClient {
    @PostMapping("cancelOrder")
    @ApiOperation("用户取消订单")
    void cancelOrder(@RequestBody UserOrderOperationRequest req);

    @PostMapping("cancelReturns")
    @ApiOperation("用户取消退货单")
    void cancelReturns(@RequestBody UserOperateReturnRequestVo req);

    @PostMapping("confirmReceive")
    @ApiOperation("用户签收订单")
    void confirmReceive(@RequestBody UserOrderOperationRequest req);

    @PostMapping("fillReturnExpressInfo")
    @ApiOperation("用户取消退货单")
    void fillReturnExpressInfo(@RequestBody UserFillReturnExpressInfoRequestVo req);
}
